3D图形 1. 线框渲染(Wireless Rendering) 2. 网格(Mesh) 3. 三角形更常用因为能定义唯一的平面 4. 扫描线渲染(Scanline Rendering)——填充图形的经典算法 5. 遮挡(Occulusion) 6. 深度缓冲(Z Buffering)
GUI是"事件驱动编程",代码可以在任意时间执行以响应事件,而不像传统代码一样自上而下。 图形界面先驱:道格拉斯·恩格尔巴特(Douglas Engelbart)——设想计算机称为未来知识性员工应对问题的工具,并发明了鼠标。 1970年成立 帕洛阿尔托研究中心(Palo Alto Research Center) 1973年完成Xerox Alto(施乐奥托)计算机——创立了桌面,窗口等计算机概念。 1981年的Xerox Star system(施乐之星系统)创建了文档概念。 所见即所得WYSIWYG——施乐打印出来的东西和计算机上一样,并发明了剪切、复制、粘贴等计算机概念。 史蒂夫·乔布斯去施乐参观。 1983年推出 Apple Lisa。 1984年推出 Macintosh 成功。 1985年推出 Windows 1.0,之后出到 3.1。 1995年推出 Windows 95。 提供新的图形界面,并有Mac没有的新功能,如多任务和受保护内存。 1995年微软做失败的 Microsoft Bob——类似于房子的设计。
##本集概括:继续讲计算机发展史 1970年代初成本下降,个人计算机变得可行。 RAM:random-access memory随机访问存储器 ROM:read-only memory只读存储器 Altair8800第一台取得商业成功的个人计算机。 比尔·盖茨和保罗·艾伦写BASIC解释器,解释器和编译器类似,区别是解释器运行时转换,而编译器提前转换。 乔布斯提议卖组装好的计算机,Apple-l诞生。 1977年出现3款开箱即用计算机: "Apple-ll" "TRS-80 Model l" "Commodore PET 2001" ###IBM意识到个人计算机市场 IBM PC发布,采用**开放架构**,兼容的机器都叫IBM Compatible(IBM兼容) 生态系统生产雪球效应: 因为用户多,软硬件开发人员更愿意花精力在这个平台。 因为软硬件多,用户也更乐意买"IBM兼容"的计算机。 苹果选择**封闭架构**,一切都自己来,只有苹果在非"IBM兼容"下保持了足够市场份额。
##本课概括:政府和消费者推动了计算机的发展。 早期考政府资金,让技术发展到足够商用,然后消费者购买商用产品继续推动产品发展。 冷战导致美国往计算机领域投入了大量资金。 范内瓦·布什预见了计算机的潜力,提出假想机器Memex 帮助建立国家科学基金会,给科学研究提供资金。 1950年代消费者开始买晶体管设备,收音机大卖。 日本取得晶体管授权后,索尼做了晶体管收音机,为日本半导体行业崛起埋下种子。 苏联1961年把宇航员加特林送上太空,导致美国提出登月。 NASA预算大大增加,用集成电路来制作登月计算机。 集成电路的发展实际上是由军事应用大大推进的,阿波罗登月毕竟只有17次。 美国造超级计算机进一步推进集成电路。 美国半导体行业一开始考政府高利润合同活着,忽略消费者市场,1970年代冷战渐消,行业开始衰败。 很多公司倒闭,英特尔转型处理器。
1、PDP-1计算机、键盘和显示器分开,屏幕显示临时值 2、阴极射线管 Cathode Ray Tube(CRT) 3、液晶显示器Liquid Crystal Display(LCD)、像素(Pixel) 4、字符生成器(Character generator) 5、屏幕缓冲区(Screen buffer) 6、矢量命令画图 7、Sketchpad,光笔(Light pen),位图显示和画矩形
计算机早期同时输入程序和数据(用纸卡/纸带),运行开始直到结束,中间没有人类进行操作。
因为机器太贵了,不能等人类慢慢敲命令和给数据,要同时放入数据和程序。到1950年代,计算机足够便宜+快,人类和计算机交互式操作变得可行。
为了让人类输入到计算机,改造之前就有的打字机,变成电传打字机。到1970年代末,屏幕成本足够低,屏幕代替电传打字机,屏幕称为标配。
输入命令,计算机会给予回应。
嫩存更多文件,传输也更快。
适合经常出现相同值的文件,以吃豆人游戏为例:
没有损失任何数据的压缩。
一种高效的编码模式,以压缩图片为例
删掉人类无法感知的数据的有损压缩方法,叫做"感知编码",如音频文件,人类听不到超声波,所以可以舍去,MP3就是音频的一种圧缩形式。
有损压缩的一个例子就是jpeg模式,如图:
一个视频由很多图片构成,其中很多图片的背景一样,这就造成了时间冗余,很多视频编码格式,只存变化的部分。进阶的视频压缩模式会找到帧与帧的相似性,然后打补丁,MPEG-4是视频压缩的常见标准。
可以随便存文件数据,但按格式存会很方便。
用ASCII解码。
记录的振幅。
记录每个像素的红禄蓝RGB值。
用来解决多文件问题,存其他文件的信息,比如开头、结尾、创建时间等。
文件都在同一个层次,早期空间小,只有十几个文件,平面系统够用。
文件的增删改查会不可避免的造成文件散落在各个块里吗,如果是磁带这样的存储介质就会造成问题,所以需要碎片整理——计算机把文件内容调换位置。
有不同的文件夹,文件夹可以层层嵌套。
操作系统也是一种程序,不过它有操作硬件的特殊权限,可以运行和管理其他程序。
一个程序运行后会自动运行下一个程序。
和计算机连着的其他设备,如打印机。
为了使所有程序和不同类型的电脑兼容,我们需要操作系统充当软件和硬件之间的媒介,更具体地说,操作系统提供程序编程接口(API)来抽象硬件,叫"设备驱动程序"。程序员可以用标准化机制,和输入输出硬件(I/O)交互。
操作系统能使多个程序在单个CPU上同时进行的能力,叫做"多任务处理"。
多程序处理带来了一个程序所占用的内存可能不连续的问题,导致程序员难以追踪一个程序,为了解决这个问题,操作系统会把内存地址虚拟化,这叫"虚拟内存"。
虚拟内存的机制使得程序的内存大小可以灵活增减,叫做"动态内存分配",对程序来说,内存看上去是连续的。
给每个程序分配单独的内存,那当这个程序出现混乱时,它不会影响其他程序的内存,同时也能有效地防止恶意程序篡改其他程序,这叫"内存保护"。
用来处理多用户同时使用一台计算机的情况,即每个用户只能用一小部分处理器、内存等。
把操作系统分为两个部分,一个是操作系统的核心部分,如内存管理、多任务和输入/输出处理,这叫做"内核",第二部分是一堆有用的工具,比如程序和运行库。